package com.ruoyi.know.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.TreeEntity;

/**
 * 知识点对象 knowledge_points
 *
 * @author ruoyi
 * @date 2025-01-26
 */
public class KnowledgePoints extends TreeEntity
{
    private static final long serialVersionUID = 1L;

    /** 知识点id */
    private Long knowledgePointId;

    /** 知识点名称 */
    @Excel(name = "知识点名称")
    private String knowledgePointName;

    /** 描述 */
    @Excel(name = "描述")
    private String description;

    private CourseChapters courseChapters;
//    /** 章节id */
//    @Excel(name = "章节id")
//    private Long chapterId;

    private String pptUrl;

    private String videoUrl;

    private String practiceUrl;

    /** 是否有ppt：0否1是 */
    @Excel(name = "是否有ppt：0否1是")
    private Long isHavePpt;

    /** 是否有短视频：0否 1是 */
    @Excel(name = "是否有短视频：0否 1是")
    private Long isHaveVideo;

    /** 是否有练习题目：0否 1是 */
    @Excel(name = "是否有练习题目：0否 1是")
    private Long isHavePractice;

    /** 是否公开：0否 1是 */
    @Excel(name = "是否公开：0否 1是")
    private Long isVisibility;

    /** 浏览量 */
    private int visitQuantity;

    /** 是否有效：0无效1有效 */
    private Long isValid;

    /** 创建人 */
    private String createdBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /**
     * 是否已经点赞
     */
    private boolean isLike;

    /**
     * 点赞数量
     */
    private int likesNum;

    public void setKnowledgePointId(Long knowledgePointId)
    {
        this.knowledgePointId = knowledgePointId;
    }

    public Long getKnowledgePointId()
    {
        return knowledgePointId;
    }
    public void setKnowledgePointName(String knowledgePointName)
    {
        this.knowledgePointName = knowledgePointName;
    }

    public String getKnowledgePointName()
    {
        return knowledgePointName;
    }
    public void setDescription(String description)
    {
        this.description = description;
    }

    public String getDescription()
    {
        return description;
    }

    public CourseChapters getCourseChapters() {
        return courseChapters;
    }

    public void setCourseChapters(CourseChapters courseChapters) {
        this.courseChapters = courseChapters;
    }

    public void setIsHavePpt(Long isHavePpt)
    {
        this.isHavePpt = isHavePpt;
    }

    public Long getIsHavePpt()
    {
        return isHavePpt;
    }
    public void setIsHaveVideo(Long isHaveVideo)
    {
        this.isHaveVideo = isHaveVideo;
    }

    public Long getIsHaveVideo()
    {
        return isHaveVideo;
    }
    public void setIsHavePractice(Long isHavePractice)
    {
        this.isHavePractice = isHavePractice;
    }

    public Long getIsHavePractice()
    {
        return isHavePractice;
    }
    public void setIsVisibility(Long isVisibility)
    {
        this.isVisibility = isVisibility;
    }

    public Long getIsVisibility()
    {
        return isVisibility;
    }
    public void setIsValid(Long isValid)
    {
        this.isValid = isValid;
    }

    public Long getIsValid()
    {
        return isValid;
    }
    public void setCreatedBy(String createdBy)
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy()
    {
        return createdBy;
    }
    public void setCreatedAt(Date createdAt)
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt()
    {
        return createdAt;
    }
    public void setUpdatedAt(Date updatedAt)
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt()
    {
        return updatedAt;
    }

    public String getPptUrl() {
        return pptUrl;
    }

    public void setPptUrl(String pptUrl) {
        this.pptUrl = pptUrl;
    }

    public String getVideoUrl() {
        return videoUrl;
    }

    public void setVideoUrl(String videoUrl) {
        this.videoUrl = videoUrl;
    }

    public String getPracticeUrl() {
        return practiceUrl;
    }

    public void setPracticeUrl(String practiceUrl) {
        this.practiceUrl = practiceUrl;
    }

    public boolean isLike() {
        return isLike;
    }

    public void setLike(boolean like) {
        isLike = like;
    }

    public int getLikesNum() {
        return likesNum;
    }

    public void setLikesNum(int likesNum) {
        this.likesNum = likesNum;
    }


    public int getVisitQuantity() {
        return visitQuantity;
    }

    public void setVisitQuantity(int visitQuantity) {
        this.visitQuantity = visitQuantity;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("knowledgePointId", getKnowledgePointId())
            .append("parentId", getParentId())
            .append("knowledgePointName", getKnowledgePointName())
            .append("description", getDescription())
            .append("courseChapters", getCourseChapters())
            .append("isHavePpt", getIsHavePpt())
            .append("isHaveVideo", getIsHaveVideo())
            .append("isHavePractice", getIsHavePractice())
            .append("isVisibility", getIsVisibility())
            .append("isValid", getIsValid())
            .append("createdBy", getCreatedBy())
            .append("createdAt", getCreatedAt())
            .append("updateBy", getUpdateBy())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
